package com.ruoyi.factory.bom.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.TreeEntity;

/**
 * bom模型对象 t_bom_cost
 *
 * @author ruoyi
 * @date 2022-12-17
 */
public class BomCost extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** bom名称 */
//    @Excel(name = "bom名称")
    private String bomName;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String chinaName;

    /** 类型编码 */
    @Excel(name = "类型编码", dictType = "mtr_type")
    private String type;

    /** 别名 */
    @Excel(name = "别名")
    private String asName;

    /** 父菜单ID */
    @Excel(name = "父项编码")
    private String parentId;

    /** bom版本 */
//    @Excel(name = "bom版本")
    private String bomVar;

    /** 父项目版本 */
//    @Excel(name = "父项目版本")
    private String fatherPartvar;

    /** 物料编码 */
    @Excel(name = "物料编码")
    private String partId;

    /** 层次号 */
//    @Excel(name = "层次号")
    private String assembLelevel;

    /** 物料版本 */
//    @Excel(name = "物料版本")
    private String partVar;

    /** 数量 */
    @Excel(name = "数量")
    private String counts;

    /** 年度 */
//    @Excel(name = "年度")
    private String year;

    /** 期间 */
//    @Excel(name = "期间")
    private String moth;

    /** 无税单价 */
    @Excel(name = "材料价格")
    private BigDecimal price;

    /** 含税单价 */
//    @Excel(name = "含税单价")
    private BigDecimal taxPrice;

    /** 市场价格 */
    @Excel(name = "市场价格")
    private BigDecimal marketPrice;

    /** 市场价格(含税) */
//    @Excel(name = "市场价格(含税)")
    private BigDecimal marktaxPrice;

    /** 成品价格 */
    @Excel(name = "成品价格")
    private BigDecimal productPrice;

    /** 直接人工 */
    @Excel(name = "直接人工")
    private BigDecimal workFee;

    /** 天然气 */
    @Excel(name = "天然气")
    private BigDecimal gasFee;

    /** 电费 */
    @Excel(name = "电费")
    private BigDecimal elecFee;

    /** 制造费用 */
    @Excel(name = "制造费用")
    private BigDecimal makeFee;

    /** 标准合计 */
    @Excel(name = "标准成本")
    private BigDecimal stTotalFee;

    /** 合计 */
    @Excel(name = "市场成本")
    private BigDecimal totalFee;

    /** 毛利率 */
//    @Excel(name = "毛利率")
    private BigDecimal grossProfitRate;

    /** 标准销售价格 */
//    @Excel(name = "标准销售价格")
    private BigDecimal stSalePrice;

    /** 销售价格 */
//    @Excel(name = "销售价格")
    private BigDecimal salePrice;

    /** 时间戳 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "时间戳", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nodeTimesTamp;

    /** 价格时间 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "价格时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date priceTime;

    /** 备注 */
//    @Excel(name = "备注")
    private String marks;

    /** 基期 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "基期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date partDate;

    /** root值 */
//    @Excel(name = "root值")
    private String rootCode;

    /** 序列号 */
//    @Excel(name = "序列号")
    private String seqnum;

    /** 父菜单名称 */
    private String parentTitle;

    /** 显示顺序 */
    private Integer orderNum;

    /** 祖级列表 */
    private String ancestors;

    private List<BomCost> children = new ArrayList<BomCost>();

    public String getParentTitle() {
        return parentTitle;
    }

    public void setParentTitle(String parentTitle) {
        this.parentTitle = parentTitle;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public Integer getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }

    public String getAncestors() {
        return ancestors;
    }

    public void setAncestors(String ancestors) {
        this.ancestors = ancestors;
    }

    public List<BomCost> getChildren()
    {
        return children;
    }

    public void setChildren(List<BomCost> children)
    {
        this.children = children;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }
    public void setChinaName(String chinaName)
    {
        this.chinaName = chinaName;
    }

    public String getChinaName()
    {
        return chinaName;
    }
    public void setAsName(String asName)
    {
        this.asName = asName;
    }

    public String getAsName()
    {
        return asName;
    }
    public void setBomName(String bomName)
    {
        this.bomName = bomName;
    }

    public String getBomName()
    {
        return bomName;
    }
    public void setBomVar(String bomVar)
    {
        this.bomVar = bomVar;
    }

    public String getBomVar()
    {
        return bomVar;
    }
    public void setFatherPartvar(String fatherPartvar)
    {
        this.fatherPartvar = fatherPartvar;
    }

    public String getFatherPartvar()
    {
        return fatherPartvar;
    }
    public void setPartId(String partId)
    {
        this.partId = partId;
    }

    public String getPartId()
    {
        return partId;
    }
    public void setAssembLelevel(String assembLelevel)
    {
        this.assembLelevel = assembLelevel;
    }

    public String getAssembLelevel()
    {
        return assembLelevel;
    }
    public void setPartVar(String partVar)
    {
        this.partVar = partVar;
    }

    public String getPartVar()
    {
        return partVar;
    }
    public void setCounts(String counts)
    {
        this.counts = counts;
    }

    public String getCounts()
    {
        return counts;
    }
    public void setYear(String year)
    {
        this.year = year;
    }

    public String getYear()
    {
        return year;
    }
    public void setMoth(String moth)
    {
        this.moth = moth;
    }

    public String getMoth()
    {
        return moth;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setTaxPrice(BigDecimal taxPrice)
    {
        this.taxPrice = taxPrice;
    }

    public BigDecimal getTaxPrice()
    {
        return taxPrice;
    }
    public void setMarketPrice(BigDecimal marketPrice)
    {
        this.marketPrice = marketPrice;
    }

    public BigDecimal getMarketPrice()
    {
        return marketPrice;
    }
    public void setMarktaxPrice(BigDecimal marktaxPrice)
    {
        this.marktaxPrice = marktaxPrice;
    }

    public BigDecimal getMarktaxPrice()
    {
        return marktaxPrice;
    }

    public void setProductPrice(BigDecimal productPrice)
    {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductPrice()
    {
        return productPrice;
    }

    public void setWorkFee(BigDecimal workFee)
    {
        this.workFee = workFee;
    }

    public BigDecimal getWorkFee()
    {
        return workFee;
    }
    public void setGasFee(BigDecimal gasFee)
    {
        this.gasFee = gasFee;
    }

    public BigDecimal getGasFee()
    {
        return gasFee;
    }
    public void setElecFee(BigDecimal elecFee)
    {
        this.elecFee = elecFee;
    }

    public BigDecimal getElecFee()
    {
        return elecFee;
    }
    public void setMakeFee(BigDecimal makeFee)
    {
        this.makeFee = makeFee;
    }

    public BigDecimal getMakeFee()
    {
        return makeFee;
    }
    public void setStTotalFee(BigDecimal stTotalFee)
    {
        this.stTotalFee = stTotalFee;
    }

    public BigDecimal getStTotalFee()
    {
        return stTotalFee;
    }
    public void setTotalFee(BigDecimal totalFee)
    {
        this.totalFee = totalFee;
    }

    public BigDecimal getTotalFee()
    {
        return totalFee;
    }
    public void setGrossProfitRate(BigDecimal grossProfitRate)
    {
        this.grossProfitRate = grossProfitRate;
    }

    public BigDecimal getGrossProfitRate()
    {
        return grossProfitRate;
    }

    public void setStSalePrice(BigDecimal stSalePrice)
    {
        this.stSalePrice = stSalePrice;
    }

    public BigDecimal getStSalePrice()
    {
        return stSalePrice;
    }
    public void setSalePrice(BigDecimal salePrice)
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice()
    {
        return salePrice;
    }
    public void setNodeTimesTamp(Date nodeTimesTamp)
    {
        this.nodeTimesTamp = nodeTimesTamp;
    }

    public Date getNodeTimesTamp()
    {
        return nodeTimesTamp;
    }
    public void setPriceTime(Date priceTime)
    {
        this.priceTime = priceTime;
    }

    public Date getPriceTime()
    {
        return priceTime;
    }
    public void setMarks(String marks)
    {
        this.marks = marks;
    }

    public String getMarks()
    {
        return marks;
    }
    public void setPartDate(Date partDate)
    {
        this.partDate = partDate;
    }

    public Date getPartDate()
    {
        return partDate;
    }
    public void setRootCode(String rootCode)
    {
        this.rootCode = rootCode;
    }

    public String getRootCode()
    {
        return rootCode;
    }
    public void setSeqnum(String seqnum)
    {
        this.seqnum = seqnum;
    }

    public String getSeqnum()
    {
        return seqnum;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("type", getType())
                .append("chinaName", getChinaName())
                .append("asName", getAsName())
                .append("bomName", getBomName())
                .append("bomVar", getBomVar())
                .append("parentId", getParentId())
                .append("fatherPartvar", getFatherPartvar())
                .append("partId", getPartId())
                .append("assembLelevel", getAssembLelevel())
                .append("partVar", getPartVar())
                .append("counts", getCounts())
                .append("year", getYear())
                .append("moth", getMoth())
                .append("price", getPrice())
                .append("taxPrice", getTaxPrice())
                .append("marketPrice", getMarketPrice())
                .append("marktaxPrice", getMarktaxPrice())
                .append("productPrice", getProductPrice())
                .append("workFee", getWorkFee())
                .append("gasFee", getGasFee())
                .append("elecFee", getElecFee())
                .append("makeFee", getMakeFee())
                .append("stTotalFee", getStTotalFee())
                .append("totalFee", getTotalFee())
                .append("grossProfitRate", getGrossProfitRate())
                .append("stSalePrice", getStSalePrice())
                .append("salePrice", getSalePrice())
                .append("nodeTimesTamp", getNodeTimesTamp())
                .append("priceTime", getPriceTime())
                .append("marks", getMarks())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("partDate", getPartDate())
                .append("rootCode", getRootCode())
                .append("seqnum", getSeqnum())
                .toString();
    }
}